The Microsoft .NET Framework is a managed programming model for Microsoft Windows that includes Windows Presentation Foundation (“WPF”). WPF provides application developers with a unified programming model for building rich Windows smart client user experiences particularly including user interfaces (“UIs”) that make better use of current hardware and technologies. WPF provides a richer set of drawing features and performs considerably faster than its predecessor, the Win32-based UI graphics subsystem using Microsoft Windows Graphics Device Interface (“GDI”) and Microsoft Windows GDI+ which were originally developed more than 20 years ago.
WPF provides developers with a way to create applications having advanced UI graphics with fewer constraints in how graphical elements are controlled. WPF provides a library of commonly used, vector-drawn 2-D (two-dimension) shapes, such as rectangles and ellipses, which are not just shapes but are programmable elements that implement many of the features expected from most common controls including keyboard and mouse input. If the shapes in the library are not sufficient, WPF can support geometries and paths by which developers may create custom shapes, or use as drawing brushes, or use to clip other WPF elements.
WPF provides a library of 2-D classes that a developer may use to create a variety of effects. The 2-D rendering capability of WPF provides the ability to paint UI elements using brushes. Use of a “Visual Brush,” for example, enables a UI element to be painted with any visual tree. Those UI elements in the visual tree may be manipulated by using translation, rotation, scaling, and skewing. WPF further provides a set of 3-D (three-dimensional) rendering capabilities that integrate with 2-D graphics support in WPF so that developers can create interesting layouts, UIs, and data visualizations. The WPF 3-D implementation allows developers to draw, transform, and animate 3-D graphics in both mark-up and procedural code. Developers can combine 2-D and 3-D graphics to create rich controls, provide complex illustrations of data, or enhance the user experience of an application's interface.
While the WPF 3-D capabilities are well suited to many scenarios, the 3-D objects in a UI space are limited in that they are not interactive or dynamic in the same manner as their WPF 2-D counterparts. While an application developer can presently take a 2-D interface and place it on a 3-D surface, there is no currently supported functionality in WPF to enable interaction with that interface while in the 3-D space. For example, a UI might include some controls such as buttons, scroll bars, and text entry boxes. While WPF currently supports user interaction with the UI to enable the buttons to be pushed, scrolls bars to be used, and text to be entered by the application's user, such supported interaction ends once the interface is put into the 3-D space.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.